package firstStage.part9;

/**
 * @ClassName: [ThreadDemo]
 * @Description: StringBuilder
 * @Author: [黄劲松]
 * @CreateDate: [2021-02-07]
 * @Version: [v1.0]
 */
/*StringBuilder概述
    如果对字符串进行拼接操作，每次拼接,都会构建一个新的String对象，既耗时，又浪费内存空间，而这种操作还不可避免。那么有没有一种比较好的方式可以解决这个问题呢? 答案是肯定的，我们可以通过Java提供的 StringBuilder类就来解决这个问题。
    StringBuilder是一个可变的字符串类，我们可以把它看成是一个容器
    这里的可变指的是StringBuilder对象中的内容是可变的
    String和StringBuilder的区别:
    ●String: 内容是不可变的
    ●StringBuilder: 内容是可变的*/

/*StringBuilder构造方法
方法名                               说明
public StringBuilder()              创建一个空白可变字符串对象，不含有任何内容
public StringBuilder(String str)    根据字符串的内容，来创建可变字符串对象
*/
/*StringBuilder的添加和反转方法
public StringBuilder append(任意类型)   添加数据，并返回对家本身
public StringBuilder reverse()         返回相反的字符序列
*/
public class StringBuilderDemo {
    public static void main(String[] args) {
        //StringBuilder构造方法
        StringBuilder sb = new StringBuilder();
        System.out.println("sb：" + sb);
        System.out.println("sb.length()：" + sb.length());
        StringBuilder sb1 = new StringBuilder("hello");
        System.out.println("sb1：" + sb1);
        System.out.println("sb1.length()：" + sb1.length());
        //StringBuilder添加 反转方法
        StringBuilder sb2 = new StringBuilder();
        sb2.append("hello");
        sb2.append("world");
        sb2.append("java");
        sb2.append(100);
        System.out.println("sb2：" + sb2);
        //链式编程
        StringBuilder sb3 = new StringBuilder();
        sb3.append("hello").append("world").append("java").append(100);
        System.out.println("sb3添加：" + sb3);
        sb3.reverse();
        System.out.println("sb3反转：" + sb3);
    }
}
